using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
using System.Runtime.Serialization;
using objetos;
using dados;
using System.IO;
using System.Xml.Serialization;

namespace negocios 
{
	#region TB_BANCO
	/// <summary>
	/// This object represents the properties and methods of a TB_BANCO.
	/// </summary>
	public class BLL_TB_BANCO
	{		
		DAL_TB_BANCO DAL = new DAL_TB_BANCO();        
		
		#region METODOS PROCEDURES
		/// <summary>
		/// Incluir 
		/// </summary>
		public int Incluir(OBJ_TB_BANCO obj)
		{
			return	DAL.Incluir(obj);
			
		}

        public int Incluir(string nome, string site, string codigo)
        {
            OBJ_TB_BANCO o_tb_banco = new OBJ_TB_BANCO();


            o_tb_banco.nome = nome;
            o_tb_banco.site = site;
            o_tb_banco.codigo = codigo;

            return DAL.Incluir(o_tb_banco);
        }


        public void Serialize(OBJ_TB_BANCO obj, String arquivo)
        {
            try
            {                                
                // Create file to save the data to
                FileStream fs = new FileStream(arquivo, FileMode.Create);
                // Create an XmlSerializer object to perform the serialization
                XmlSerializer xs = new XmlSerializer(typeof(OBJ_TB_BANCO));
                // Use the XmlSerializer object to serialize the data to the file
                xs.Serialize(fs, obj);
                // Close the file
                fs.Close();
            }
            catch (Exception)
            {
                
                throw;
            }
          
        }

        public OBJ_TB_BANCO Deserialize(String arquivo)
        {
            try
            {
                // C#
                // Open file to read the data from
                FileStream fs = new FileStream(arquivo, FileMode.Open);
                // Create an XmlSerializer object to perform the deserialization
                XmlSerializer xs = new XmlSerializer(typeof(DateTime));
                // Use the XmlSerializer object to deserialize the data from the file
                OBJ_TB_BANCO obj = (OBJ_TB_BANCO)xs.Deserialize(fs);
                // Close the file
                fs.Close();
              
                return obj;
            }
            catch (Exception)
            {
                
                throw;
            }
          
        }
		
		/// <summary>
		/// Alterar 
		/// </summary>
		public void Alterar(OBJ_TB_BANCO obj)
		{
			DAL.Alterar(obj);	
		}
		
		/// <summary>
		/// Excluir 
		/// </summary>
		public void Excluir(OBJ_TB_BANCO obj)
		{
			DAL.Excluir(obj);	
		}
		
		/// <summary>
		/// Excluir Lista 
		/// </summary>
		public void ExcluirLista(List<OBJ_TB_BANCO> lista)
		{
				foreach (OBJ_TB_BANCO obj in lista)
            	{
                this.Excluir(obj);
            	}
			
		}
						
		/// <summary>
		/// Pesquisar Parametros Where, OrderBy, PageIndex, PageSize
		/// </summary>		
		public DataSet Selecionar(string Where, string OrderBy, int PageIndex, int PageSize)
		{
			
			return DAL.Selecionar(Where,OrderBy,PageIndex,PageSize);
			
		}		
		
		
		/// <summary>
		/// Retorna Objeto por ID
		/// </summary>
		public OBJ_TB_BANCO SelecionarObjetoPorId(int id)
		{
			return DAL.SelecionarObjetoPorId(id);
			
		}
				
			
		/// <summary>
		/// Retorna DataSet Parametros Where, OrderBy
		/// </summary>	
		public DataSet Selecionar(String Where, String OrderBy)
        {
            return DAL.Selecionar(Where, OrderBy);
        }
		
		/// <summary>
		/// Retorna DataSet
		/// </summary>	
		public DataSet Selecionar()
        {
            return DAL.Selecionar();
        }
			
		
		/// <summary>
		/// Retorna uma lista de objetos por parametro Where, OrderBy
		/// </summary>
		public List<OBJ_TB_BANCO>SelecionarLista(String Where, String OrderBy)
		{						
			return 	DAL.SelecionarLista(Where,OrderBy);
		}
		
		
		/// <summary>
		/// Retorna uma lista de objetos por parametro 
		/// </summary>
		public List<OBJ_TB_BANCO>SelecionarLista()
		{						
			return 	DAL.SelecionarLista();
		}
		
		public void PreencheControle(System.Web.UI.Control controle, bool selecione)
        {
            if (controle is DropDownList)
            {
                DropDownList ddl = (DropDownList)controle;
                ddl.Items.Clear();
                foreach (OBJ_TB_BANCO obj in DAL.SelecionarLista("", "nome"))
                {
                    ddl.Items.Add(new ListItem( obj.nome.ToString(), obj.id.ToString()));
                }
                
                if (selecione)
                {
                    ddl.Items.Insert(0, new ListItem("Selecione", ""));
                    ddl.SelectedIndex = 0;
                }

                ddl.DataBind();
            }


            if (controle is ListBox)
            {
                ListBox lst = (ListBox)controle;
                lst.Items.Clear();
                foreach (OBJ_TB_BANCO obj in DAL.SelecionarLista("","nome"))
                {
                    lst.Items.Add(new ListItem( obj.nome.ToString(), obj.id.ToString()));
                }

                if (selecione)
                {
                    lst.Items.Insert(0, new ListItem("Selecione", ""));
                    lst.SelectedIndex = 0;
                }

                lst.DataBind();
            }

        }										
			
		
		public DataSet ListaCampos()
		{
			 return DAL.ListaCampos();
		}


    
        

		#endregion
	}
	#endregion
}

